package com.gusto.engine.spring;

import org.springframework.beans.factory.xml.NamespaceHandlerSupport;

import com.gusto.engine.spring.parsers.ParserComposedSimilarity;
import com.gusto.engine.spring.parsers.ParserCompoundSimilarity;
import com.gusto.engine.spring.parsers.ParserDateIntervalSimilarity;
import com.gusto.engine.spring.parsers.ParserEdgeCountingSimilarity;
import com.gusto.engine.spring.parsers.ParserIdentitySimilarity;
import com.gusto.engine.spring.parsers.ParserIntervalSimilarity;
import com.gusto.engine.spring.parsers.ParserJaccardBinarySimilarity;
import com.gusto.engine.spring.parsers.ParserJaroWinklerStringSimilarity;
import com.gusto.engine.spring.parsers.ParserMatrixSimilarity;
import com.gusto.engine.spring.parsers.ParserProp;
import com.gusto.engine.spring.parsers.ParserPropertySimilarity;
import com.gusto.engine.spring.parsers.ParserRandomValueSimilarity;
import com.gusto.engine.spring.parsers.ParserRessemblanceSimilarity;
import com.gusto.engine.spring.parsers.ParserWordNetSimilarity;
import com.gusto.engine.spring.parsers.ParserZipCodeSimilarity;

public class SemSimNamespaceHandler extends NamespaceHandlerSupport {

	/**
	 * Registers the BeanDefinitionParser for the advice tag.
	 */
	public void init() {
		
		registerBeanDefinitionParser("composed", new ParserComposedSimilarity());
		registerBeanDefinitionParser("compound", new ParserCompoundSimilarity());
		//registerBeanDefinitionParser("composedParam", new ParserComposedSimilarityParam());
		registerBeanDefinitionParser("dateInterval", new ParserDateIntervalSimilarity());
		registerBeanDefinitionParser("edgeCounting", new ParserEdgeCountingSimilarity());
		registerBeanDefinitionParser("identity", new ParserIdentitySimilarity());
		registerBeanDefinitionParser("interval", new ParserIntervalSimilarity());
		registerBeanDefinitionParser("jaccardBinary", new ParserJaccardBinarySimilarity());
		registerBeanDefinitionParser("jaroWinkler", new ParserJaroWinklerStringSimilarity());
		registerBeanDefinitionParser("matrix", new ParserMatrixSimilarity());
		registerBeanDefinitionParser("prop", new ParserProp());
		registerBeanDefinitionParser("property", new ParserPropertySimilarity());
		registerBeanDefinitionParser("randomValue", new ParserRandomValueSimilarity());
		registerBeanDefinitionParser("ressemblance", new ParserRessemblanceSimilarity());
		registerBeanDefinitionParser("wordnet", new ParserWordNetSimilarity());
		registerBeanDefinitionParser("zipCode", new ParserZipCodeSimilarity());
		
	}
}